/*
 * @Description: vuex相关
 * @Author: YWJ 
 * @Date: 2022-04-24 15:08:00 
 * @Last Modified by: YWJ
 * @Last Modified time: 2022-04-25 10:59:42
 */


// import Vue from 'vue'
// import Vuex from 'vuex'
// import { register, getUserInfo ,logout} from '@/api/login'
// Vue.use(Vuex)

// export default new Vuex.Store({
//     //用户id 账号 名称 头像 token
//     state: {
//         id: '',
//         account: '',
//         name: '',
//         avatar: '',
//         token: localStorage.token,
//     },
//     mutations: {
//         SET_TOKEN(state, token) {
//             state.token = token;
//         },
//         SET_ACCOUNT(state, account) {
//             state.account = account
//         },
//         SET_NAME(state, name) {
//             state.name = name
//         },
//         SET_AVATAR(state, avatar) {
//             state.avatar = avatar
//         },
//         SET_ID(state, id) {
//             state.id = id
//         }
//     },
//     actions: {
//         //传递一个user对象 里面包含 account账号 nickname昵称 password密码
//         register({ commit }, user) {
//             //Promise 对象代表了未来将要发生的事件，用来传递异步操作的消息。
//             //rejected: 意味着操作失败。
//             return new Promise((resolve, reject) => {
//                 // 异步处理
//                 // 处理结束后、调用resolve 或 reject
//                 //当异步代码执行成功时，我们才会调用resolve(...), 当异步代码失败时就会调用reject(...)

//                 //register为注册时调用的函数 需要从外部引入
//                 register(user).then((res) => {
//                     if (res.data.success) {
//                         commit('SET_TOKEN', res.data.data)
//                         //localStorage本地存储 和cookie差不多
//                         localStorage.token = res.data.data
//                         resolve()
//                     } else {
//                         reject(res.data.msg)
//                     }
//                 }).catch((error) => {
//                     reject(error)
//                 })
//             })
//         },
//         getUserInfo({ commit }) {
//             //Promise 对象代表了未来将要发生的事件，用来传递异步操作的消息。
//             //rejected: 意味着操作失败。
//             return new Promise((resolve, reject) => {
//                 // 异步处理
//                 // 处理结束后、调用resolve 或 reject
//                 //当异步代码执行成功时，我们才会调用resolve(...), 当异步代码失败时就会调用reject(...)

//                 //register为注册时调用的函数 需要从外部引入
//                 getUserInfo().then((res) => {
//                     if (res.data.success) {
//                         commit('SET_ACCOUNT', res.data.data.account);
//                         commit('SET_NAME', res.data.data.nickname);
//                         commit('SET_AVATAR', res.data.data.avatar);
//                         commit('SET_ID', res.data.data.id);
//                         resolve(res.data)
//                     } else {
//                         //获取失败全清空
//                         commit('SET_ACCOUNT', '');
//                         commit('SET_NAME', '');
//                         commit('SET_AVATAR', '');
//                         commit('SET_ID', '');
//                         commit('SET_TOKEN', '');
//                         reject(res.data.msg)
//                     }
//                 }).catch((error) => {
//                     commit('SET_ACCOUNT', '');
//                     commit('SET_NAME', '');
//                     commit('SET_AVATAR', '');
//                     commit('SET_ID', '');
//                     commit('SET_TOKEN', '');
//                     reject(error)
//                 })
//             })
//         },
//         logout({commit, state}) {
//             return new Promise((resolve, reject) => {
//               logout(state.token).then(data => {
//                 if(data.success){
      
//                   commit('SET_TOKEN', '')
//                   commit('SET_ACCOUNT', '')
//                   commit('SET_NAME', '')
//                   commit('SET_AVATAR', '')
//                   commit('SET_ID', '')
//                    localStorage.removeItem('token')
//                   resolve()
//                 }
      
//               }).catch(error => {
//                 reject(error)
//               })
//             })
//           },
//     }
// })
